package fastjson;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import fastjson.po.MyData;
import fastjson.po.MyError;

import java.util.List;

public class JsonStringToJsonArray {
    public static void main(String[] args) {
        //json字符串--数组型与JSONArray对象之间的转换
        String str = "{\"errors\":[{\"code\":\"UUM70004\",\"message\":\"组织单元名称不能为空\",\"data\":{\"id\":\"254\",\"suborderNo\":\"SUB_2018062797348039\",\"organUnitType\":\"部门\",\"action\":\"add\",\"parent\":\"10000\",\"ordinal\":0,\"organUnitFullName\":\"组织单元全称\"},\"success\":false},{\"code\":\"UUM70004\",\"message\":\"组织单元名称不能为空\",\"data\":{\"id\":\"255\",\"suborderNo\":\"SUB_2018062797348039\",\"organUnitType\":\"部门\",\"action\":\"add\",\"parent\":\"10000\",\"ordinal\":0,\"organUnitFullName\":\"组织单元全称\"},\"success\":false}]}";
        JSONObject jsonObject = JSON.parseObject(str);
        JSONArray error = jsonObject.getJSONArray("errors");
        List<MyError> errors = JSON.parseObject(error.toJSONString(), new TypeReference<List<MyError>>() {
        });
        for (MyError e : errors) {
            //Error的属性
            System.out.println("Error属性=" + e.getSuccess());
            System.out.println("Error属性=" + e.getCode());
            System.out.println("Error属性=" + e.getMessage());
            //Error集合属性
            List<MyData> datas = e.getData();
            for (MyData d : datas) {
                System.out.println("data对象属性=" + d.getId());
                System.out.println("data对象属性=" + d.getAction());
                System.out.println("data对象属性=" + d.getSuborderNo());
            }
        }
        //Error属性=false
        //Error属性=UUM70004
        //Error属性=组织单元名称不能为空
        //data对象属性=254
        //data对象属性=add
        //data对象属性=SUB_2018062797348039

        //Error属性=false
        //Error属性=UUM70004
        //Error属性=组织单元名称不能为空
        //data对象属性=255
        //data对象属性=add
        //data对象属性=SUB_2018062797348039
    }

}
